home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / tbasmhlp.arc / SOURCE.ARC / CURDIR.ASM next >
Assembly Source File  |  1987-07-19  |  1KB  |  31 lines

  1. ;FILE:CURDIR PURPOSE:To return current default dir on Drive N.
  2. ;USAGE: CALL CURDIR (N%,A$)
  3. ;You must pass an integer to indicate drive 0=Default, 1=A, 2=B, 3=C ..
  4. ;You must pass a string padded with any 64 chars for pathname.
  5. ;Paramter 2=BP+06, 1=BP+0A
  6. program segment    
  7. assume    cs:program
  8.     push    bp        ;Save this, we have to, it's the law
  9.     mov    bp,sp        ;Okay, let's use BP to point to stack
  10.     push    es        ;We're going to be using this, so save it!
  11.     push    ds        ;This too.
  12.  
  13.     les    di,[bp+06h]    ;Move 32bit pointer to string's descripter is +0/+1=Length +2/+3=offset
  14.     mov    dx,ds:[0]    ;DS:[0] always holds segment of the strings data.
  15.                 ;Let's set string's data seg to DS.
  16.     push    dx        ;
  17.     pop    ds        ;DS is now the segment containing the strings data.
  18.     mov    si,es:[di+2]    ;+2 is the address of string data.
  19.  
  20.     les    di,[bp+0ah]    ;Okay, load 32bit pointer to where integer is.
  21.     mov    dx,es:[di]      ;Okay, now move the integer HI/LO to DX
  22.  
  23.     mov    ah,047h        ;Request A Get_Cur_Directory
  24.     int    021h        ;MSDOS IRQ
  25.  
  26.     pop    ds        ;Cleanup now.
  27.     pop    es
  28.     pop    bp
  29. program    ends    
  30.     end
  31.